unit clsTipoBaixa;

interface

uses Dm, dbtables, biblio;

type
  TTipoBaixa = class(TObject)
  private
    Tipb_Codigo: string;
  public
    Tipb_descricao: string;
    Tipb_Tipo: Integer; // 0-Debito 1-Credito 2-Nulo
    Tipb_GeraBanco: string;
    function Gravar(p_Tipb_Codigo: string): Byte;
    function Recuperar(p_Tipb_Codigo: string): Byte;
    function Excluir(p_Tipb_Codigo: string): Byte;
    procedure Consultar(var p_q: TQuery; p_nome: string);
  end;

implementation

function TTipoBaixa.Gravar;
var
  tq: TQuery;
begin
  tq := Tquery.Create(DmInt);
  tq.databasename := dmint.Db.DatabaseName;
  tq.active := False;
  tq.sql.clear;
  tq.params.clear;
  tq.sql.add('SELECT * FROM TipoBaixa where Tipb_Codigo=:k_Tipb_Codigo');
  tq.parambyname('k_Tipb_Codigo').asstring := strzero(p_Tipb_Codigo, 2);
  tq.open;
  if tq.eof then begin
    tq.sql.clear;
    tq.params.clear;
    tq.sql.add('INSERT INTO TipoBaixa VALUES(:k_Tipb_Codigo,:k_Tipb_descricao,:k_tipb_tipo,:k_tipb_gerabanco)');
  end else begin
    tq.sql.clear;
    tq.params.clear;
    tq.sql.add('UPDATE TipoBaixa SET Tipb_descricao=:k_Tipb_descricao,Tipb_tipo=:k_tipb_tipo,Tipb_GeraBanco=:k_tipb_gerabanco WHERE Tipb_Codigo=:k_Tipb_Codigo');
  end;
  tq.parambyname('k_Tipb_Codigo').asstring := strzero(p_Tipb_Codigo, 2);
  tq.parambyname('k_Tipb_descricao').asstring := Tipb_descricao;
  tq.parambyname('k_Tipb_tipo').asinteger := Tipb_tipo;
  tq.parambyname('k_tipb_gerabanco').asstring := Tipb_GeraBanco;
  tq.close;
  tq.execsql;
  result := 1;
  tq.close;
  tq.Free;
end;

function TTipoBaixa.Recuperar;
var
  tq: TQuery;
begin
  tq := Tquery.Create(dmint);
  tq.databasename := DmInt.Db.DatabaseName;
  tq.active := False;
  tq.sql.clear;
  tq.sql.add('SELECT * FROM TipoBaixa where Tipb_Codigo=:k_Tipb_Codigo');
  tq.Params[0].asstring := strzero(p_Tipb_Codigo, 2);
  tq.open;
  Tipb_Codigo := p_Tipb_Codigo;
  if tq.eof then begin
    Tipb_descricao := '';
    Tipb_tipo := 3;
    Result := 0;
  end else begin
    Tipb_descricao := tq.fieldbyname('Tipb_descricao').asstring;
    Tipb_tipo := tq.fieldbyname('Tipb_Tipo').asinteger;
    Result := 1;
  end;
  Tipb_GeraBanco := tq.fieldbyname('tipb_gerabanco').asstring;
  tq.Close;
  tq.Free;
end;

function TTipoBaixa.Excluir;
var
  tq: TQuery;
begin
  tq := Tquery.Create(dmint);
  tq.databasename := dmint.db.databasename;
  tq.active := False;
  tq.sql.Clear;
  tq.params.clear;
  tq.sql.add('DELETE FROM TipoBaixa WHERE Tipb_Codigo=:k_Tipb_Codigo');
  tq.parambyname('k_Tipb_Codigo').asstring := strzero(p_Tipb_Codigo, 2);
  tq.execSQL;
  Result := 1;
  tq.close;
  tq.Free;
end;

procedure TTipoBaixa.Consultar;
begin
  p_q.sql.Clear;
  p_q.Params.Clear;
  p_q.sql.add('Select * from TipoBaixa where Tipb_descricao>=:k_Tipb_descricao order ' +
    'by Tipb_codigo');
  p_q.parambyname('k_Tipb_descricao').asstring := p_nome;
end;

end.
